USB Device 升级
1. 升级方式类别¶
-
空片 模式 usb device升级
-
uboot 模式 usb device 升级
2. 空片 模式 usb device升级¶
-
需求场景
已有完整pcb,有usb 接口,但是nandflash或norflash里面为空。
-
实现原理
-
IC上电先执行rom code
-
根据外部硬件配置跳转到nandflash/norflash中执行IPL
-
没有找到IPL资料,系统自动进入ufu的升级模式。通过pc tool 预加载u-boot.bin。
-
-
此模式下要求
预加载的u-boot.bin 本身具备ufu升级能力。
-
操作步骤
-
uboot配置
将编译生成的
u-boot_spinand.img.bin
或u-boot.img.bin
重新命名u-boot.bin
(仅仅用作空片引导)。下面操作流程会用到此文件。 -
按正常流程编译整包sdk,生成image升级文件。
-
下载工具包(此处nandflash为例)
这里需要针对bulid的不同flash使用不同的工具包(相应的sdk中tools包含升级工具)
SPINOR FLASH升级工具包:
usbloadertool_onebin_spinor_20210104.rar
SPINAND FLASH升级工具包:
usbloadertool_onebin_spinand_20210104.rar.rar
将对应的工具包解压到image路径下
-
将生成的u-boot.bin替换到此处。
-
空片模式上电,接入usb。可以观察到pc上有接入存储设备
-
执行USBDownloadTool-nopad.exe 正常情况下如图。
通常系统正常升级后,可通过串口可以观察开机过程。
-
3. uboot 模式 usb device 升级介绍¶
-
需求场景
已有完整pcb,有usb 接口,确保系统可进入uboot模式
-
实现原理
norflash或nandfash里面已经有uboot。且此份uboot支持device模式下接pc升级,通过执行uboot和pc软件进行交互,完成下载升级
-
此模式下要求
uboot 本身具备ufu升级能力。
-
操作步骤
-
配置uboot
支持ufu升级,但是不开启自动运行。
-
将uboot烧录入flash。此boot具有ufu升级能力。
如果需要在uboot来使用usb device升级功能:
需要在boot模式下设定如下参数,开机会进入device升级模式。
setenv ota_upgrade_status 1 saveenv
-
下载工具包(此处nandflash为例)
这里需要针对bulid的不同flash使用不同的工具包(相应的sdk中tools包含升级工具)
SPINOR FLASH升级工具包:
usbloadertool_onebin_spinor_20210104.rar
SPINAND FLASH升级工具包:
usbloadertool_onebin_spinand_20210104.rar.rar
将对应的工具包解压到image路径下
-
重新上电开机后,系统进入如下。
-
执行USBDownloadTool-nopad.exe 开始升级
-